메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

웹 서비스 API 래핑하기

한빛미디어

|

2002-05-10

|

by HANBIT

10,585

저자: 스티브 피긴스(Stephen Figgins), 역 전순재

XML 기반의 웹 서비스를 작성하는 데는 SOAP, XML-RPC, REST와 같은 다양한 접근법이 있다. 오로지 서비스만을 사용하기 원한다면, 웹 서비스를 가능하게 해주는 파이썬 래퍼(wrapper)가 있기 때문에 무엇으로 작성되었던 간에 상관할 필요가 없을 것이다. 마크 필그림(Mark Pilgrim)은 구글(Google) SOAP API를 포장하였다. 이제부터 그가 만든 PyGoogle 모듈로 구글(google)을 탐험해 보자. 그가 만든 래퍼(wrapper)는 여러분을 위해 SOAP를 처리해 줄 것이다.

PyGoogle에는 갱신된 버전의 SOAP.py가 따라 오는데 이 모듈은 원래 케이스 울만(Cayce Ullman)과 브라이언 매튜(Brian Matthews)가 개발한 것이다. 필그램은 여러 SOAP 라이브러리가 개발이 중단된 채, 다양한 상태로 존재한다고 말한다. 특히 파이썬 2.2에서 갱신된 변경을 추적해 들어가기가 약간 어렵기 때문에 [SOAP.py]에 문제가 있지만 필그램이 보기에는 이제 그 문제들이 해결된 듯 하다고 했다. SOAP.py와 함께 SAX 해석기(parser)용으로 PyXML이나 expat이 필요할지도 모르겠다.

SOAP.py에 존재하는 문제만 제외시키면 포장자를 만드는 것은 어렵지 않았다고 필그림(Pilgrim)은 말했다. "가장 힘든 부분은 시동 작업이었습니다. 예를 들어 구글(Google)의 문서를 내려받고, WSDL 파일을 검토하며, .NET과 자바 예제들을 검사하고, 파이썬용으로 사용하기 위해 역 공학(reverse engineering)을 시도하는 것이었죠. 일단 서버로부터 응답을 받고나자 나머지는 일사천리로 진행되었습니다. 겨우 한 두시간 정도 소비했을 따름입니다. 그리고 어쩌다 보니 제가 가장 먼저 고지에 도달했을 뿐이었습니다."

필그림(Pilgrim)은 구글 API와 아마존 XML API(역시 최근에 선언되었음)가 그저 빙산의 일각일 따름이라는 낙관적인 생각을 가지고 있다. 그는 대부분의 웹 서비스가 사적으로 구현되어 있다고 했다. 예를 들어 레드햇(RedHat)사는 XML-RPC를 사용하여 갱신과 보안 패치(fixes)를 제공한다는 것이다. "레드햇(RedHat)사의 등록과 보안 갱신 점검용 프로그램에 전적으로 파이썬 스크립트가 사용됩니다. 레드햇사는 내가 사용하고 있는 것과 똑 같은 XML-RPC 라이브러리를 사용합니다. 멋지기는 하지만 많이 알려지지는 않았죠. [Web services]는 이미 사용되고 있습니다. 우리가 이를 잘 깨닫지 못하는 이유는 그것이 아주 깊숙하게 숨겨져 있기 때문이고요. 우리가 공개적으로 보는 것들은 그저 빙산의 일각일 뿐입니다."

파이썬으로 자신만의 웹 서비스를 개발하는데 관심이 있다면, 필그림(Pilgrim)의 PyWebServices를 한 번 살펴보는 것이 좋을 것이다. "PyWebServices는 데이브 위너(Dave Winer)가 언급했던 개념에 기반을 두고 있습니다.... 그는 .NET 서비스를 개발하는데 사용된 샘플 코드를 본 후 개발자들이 직접 타이핑해 넣어야 하고 그 결과 개발자들에게 부담이 많이 가기 때문에 잘못될 가능성도 높다고 불평했습니다. 저는 서비스를 목적으로 작성되지 않고 그냥 모델일 뿐인 기존의 파이썬 모듈을 하나 취해 아무 변경도 하지 않고 그 모듈을 XML-RPC에 태워서 노출시킬 수 있는지가 정말 궁금했습니다. 그리고 그 모듈이 진짜로 가벼운 프레임워클르 개발할 수 있는지도 알아내고 싶었고요. 그리고 해냈습니다. 지금 그것은 본인의 사이트에서 잘 실행되고 있습니다. 그렇게 대단한 것은 아니지만 여기서의 핵심사항은 모듈이 증가하더라도 어떤 오버헤드도 요구하지 않기 때문에 얼마든지 모듈을 사용가능하게 할 수 있다는 것입니다. 따라서 웹 서비스로서 개방할 수도 있습니다."

필그림은 파이썬에 다이빙해 들어가기(Dive Into Python)라는 사이트에 후속 목록으로 래핑하는 법(wrapping)을 함께 다룰 생각이다. 이 사이트는 프로그래머를 위해 무료로 파이썬 개론을 간략하게 소개하고 있다. 지금 진행하고 있는 작업을 끝낸 후 정규 표현식과 관련된 또다른 작업을 할 예정이다.
TAG :
댓글 입력
자료실

최근 본 책0